import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { APP_GUARD } from '@nestjs/core';
import { resolve } from 'path';
import { JwtGuard, CacheModule, DatabaseModule, LoggerModule } from '@nbase/nest-mods';
import { SystemModule } from './modules/system/system.module';
import { AuthModule } from './modules/auth/auth.module';

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      envFilePath: [
        resolve(__dirname, '../.env.local'),
        resolve(__dirname, '../.env'),
      ],
    }),
    LoggerModule,     // 日志模块（全局可用）
    CacheModule,      // 缓存模块（支持两级缓存）
    DatabaseModule,
    AuthModule,       // AuthModule 导入 AuthCommonModule，其中包含 ClsUserMiddleware
    SystemModule,
  ],
  providers: [
    {
      provide: APP_GUARD,
      useClass: JwtGuard,
    },
    // ClsUserMiddleware 现在通过 AuthCommonModule 自动注册，无需在这里注册
  ],
})
export class AppModule {}
